from xen.xend import sxp
from xen.xend import XendDomain
from xen.xend.Args import FormFn
+from xen.xend.XendLogging import log
from xen.web.SrvDir import SrvDir
self.acceptCommand(req)
return self.dom.shutdown(req.args['reason'][0])
+ def op_delete(self, _, req):
+ self.acceptCommand(req)
+ return self.xd.domain_delete(self.dom.getName())
+
+ def op_start(self, _, req):
+ self.acceptCommand(req)
+ paused = False
+ if 'paused' in req.args and req.args['paused'] == [1]:
+ paused = True
+ log.debug("Starting domain " + self.dom.getName() + " " + str(paused))
+ return self.xd.domain_start(self.dom.getName(), paused)
+
def op_sysrq(self, _, req):
self.acceptCommand(req)
return self.dom.send_sysrq(int(req.args['key'][0]))
from xen.xend.XendDomainInfo import XendDomainInfo
from xen.xend.Args import FormFn
from xen.xend.XendError import XendError
+from xen.xend.XendLogging import log
+from xen.xend.XendConstants import DOM_STATE_RUNNING
from xen.web.SrvDir import SrvDir
from SrvDomain import SrvDomain
out.close()
return val
+ def op_new(self, _, req):
+ """Define a new domain.
+ Expects the domain config in request parameter 'config' in SXP format.
+ """
+ ok = 0
+ errmsg = ''
+ try:
+ configstring = req.args.get('config')[0]
+ #print 'op_create>', 'config:', configstring
+ pin = sxp.Parser()
+ pin.input(configstring)
+ pin.input_eof()
+ config = pin.get_val()
+ ok = 1
+ except sxp.ParseError, ex:
+ errmsg = 'Invalid configuration ' + str(ex)
+ except Exception, ex:
+ print 'op_create> Exception in config', ex
+ traceback.print_exc()
+ errmsg = 'Configuration error ' + str(ex)
+ if not ok:
+ raise XendError(errmsg)
+ try:
+ self.xd.domain_new(config)
+ except Exception, ex:
+ print 'op_create> Exception creating domain:'
+ traceback.print_exc()
+ raise XendError("Error creating domain: " + str(ex))
+
def op_restore(self, op, req):
"""Restore a domain from file.
if detail:
sxp.show(map(XendDomainInfo.sxpr, self.xd.list()), out=req)
else:
- sxp.show(self.xd.list_names(), out=req)
+ state = DOM_STATE_RUNNING
+ if 'state' in req.args and len(req.args['state']) > 0:
+ state = req.args['state'][0]
+ log.debug("Listing domains in state " + str(state))
+ sxp.show(self.xd.list_names(state), out=req)
else:
domains = self.xd.list_sorted()
req.write('<ul>')